On the Existence of High-Impact Refactoring Opportunities in Programs
نویسندگان
چکیده
The refactoring of large systems is difficult, with the possibility of many refactorings having to be done before any useful benefit is attained. We present a novel approach to detect starting points for the architectural refactoring of large and complex systems based on the analysis and manipulation of the type dependency graph extracted from programs. The proposed algorithm is based on the simultaneous analysis of multiple architectural antipatterns, and outputs dependencies between artefacts that participate in large numbers of instances of these antipatterns. If these dependencies can be removed, they represent high-impact refactoring opportunities: a small number of changes that have a major impact on the overall quality of the system, measured by counting architectural antipattern instances. The proposed algorithm is validated using an experiment where we analyse a set of 95 open-source Java programs for instances of four architectural patterns representing modularisation problems. We discuss some examples demonstrating how the computed dependencies can be removed from programs. This research is motivated by the emergence of technologies such as dependency injection frameworks and dynamic component models. These technologies try to improve the maintainability of systems by removing dependencies between system parts from program source code and managing them explicitly in configuration files.
منابع مشابه
On the Detection of High-Impact Refactoring Opportunities in Programs
We present a novel approach to detect refactoring opportunities by measuring the participation of references between types in instances of patterns representing design flaws. This technique is validated using an experiment where we analyse a set of 95 opensource Java programs for instances of four patterns representing modularisation problems. It turns out that our algorithm can detect high imp...
متن کاملAssessing the Quality of Refactoring Patterns for Introducing Design Patterns
Refactoring is a well-known process to improve the code design of object-oriented programs. Recently, several literatures focus on refactoring with introducing design patterns that are general repeated solutions to common problems in software design. For making it easy to perform such refactoring, a lot of refactoring patterns are proposed. Each refactoring pattern includes a description of ref...
متن کاملThe Family Background of Inequality in Educational Opportunities (A case Study of female high school students in Ahar
Inequality of educational opportunities underlies the reproduction of social inequalities and deepens the gap of classes. The origin of the class can be one of the effective factors involved in. The aim of this paper is the study of the impact of family background on inequality of educational opportunities among students. We used the survey method and a questionnaire. We collected needed inform...
متن کاملRefactoring in Feature-Oriented Programming: Open Issues
Similar to refactoring, feature-oriented programming can be seen as a metaprogramming paradigm, in which programs are values and composition operators transform programs to programs. In this position paper we discuss open issues of applying refactoring in the context of feature-oriented programming. First, we elaborate on the role of refactoring in maintaining features and their implementations...
متن کاملThreshord Effect of the Economic Growth Rate on the Development of Renewable Energy: Evidences from OPEC Countries
This paper studies the non linear relationship between energy prices, natural resources rent opportunities and renewable energy consumption under different economic growth rates for OPEC member countries during the 2005-2016 period. Using a panel smooth transition regression (PSTR) model, our findings prove a non-linear relationship between renewable energy consumption and the rate of economi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012